# 预编译过程
FROM node:lts-alpine
WORKDIR /app
COPY package.json /app/package.json
RUN yarn --registry=https://registry.npm.taobao.org
COPY ./ /app
RUN yarn build

# 构建正式镜像
# 设置基础镜像,如果本地没有该镜像，会从Docker.io服务器pull镜像
# FROM registry.cn-beijing.aliyuncs.com/sltyun/node:lts-alpine
FROM node:lts-alpine
# 配置环境变量
ENV NODE_ENV=production
# 更换为阿里更新源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 设置时区
RUN apk --update add tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata
# 创建app目录
RUN mkdir -p /app
# 设置工作目录
WORKDIR /app
# 持久化日志目录
VOLUME [ "/root/logs" ]

# 拷贝所有源代码到工作目录
COPY --from=0 /app /app

# 暴露容器端口
EXPOSE 7002

# 启动node应用
CMD yarn start